import React from 'react'
import { Route, Redirect } from 'react-router-dom'
import { useAuth } from '../context/AuthProvider'
// const Stack = createNativeStackNavigator();

const Screen = ({ authCheckType, component: Component,name, routes, ...rest }) => { //component:Component重命名为大写的
    const { user } = useAuth();
    if (authCheckType == "authed" && !Object.keys(user).length) { //判断如果需要验证，并且没有登陆(把user中所有对象拿出来变成一个数组)，跳转到登录
        return <Stack.Screen
            name='login'
            component={lazy(() => import('../page/Login'))}
            options={{
                headerShown: false
            }}
            authCheckType='unauthed'
        />
    }
    if (authCheckType == "unauthed" && !!Object.keys(user).length) { //判断如果不需要验证，判断length已经有值了，已经有用户信息了，直接跳到首页，不要在登录页呆着了
        return <Stack.Screen
            name='TabBar'
            component={lazy(() => import('../../App'))}
            options={{
                headerShown: false
            }}
            authCheckType='authed'
        />
    }
    // 需要验证已经登录了，就跳到需要的那一页
    // 不需要验证，不需要登录，跳到需要的那一页
    return ( //都不符合，就返回一个普通的Route，把path和component给他传进去
        // <Route render={     //render里渲染一个组件
        //     (props) => <Component {...props} routes={routes} />
        // } {...rest} />
        <Stack.Screen
            name={name}
            component={Component}
            options={{
                headerShown: false
            }}
            authCheckType='authed'
        />
    )
}
export default Screen